Le JTAG pour Joint Test Action Group est le nom de la norme IEEE 1149.1 intitulé « Standard Test Access Port and Boundary-Scan Architecture ». Le JTAG a été normalisé en 1990. Le terme JTAG, désignant le groupe de travail qui a conçu la norme, est abusivement (mais très largement) utilisé au lieu du terme générique Boundary Scan, ou du sigle TAP (Test Access Port, port d'accès de test).
1.1.1.Une brève histoire de JTAG
Dans les années 1980, le Groupe d'action mixte test (JTAG) a élaboré un cahier des charges pour le test JTAG qui a été normalisé en 1990, l'IEEE Std. 1149.1-1990. En 1993, une nouvelle révision à la norme IEEE Std. 1149.1 norme a été introduite (1149.1a intitulé) et il contient de nombreuses précisions, corrections et améliorations. En 1994,un supplément contenant une description de la Boundary-Scan Description Language (BSDL) a été ajouté à la norme. Depuis ce temps, cette norme a été adoptée par les grandes entreprises d'électronique dans le monde entier. Les demandes sont trouvés en grande quantité, les produits haut de gamme grand public, des produits de télécommunication, les systèmes de défense, des ordinateurs, des périphériques, et de l'avionique. En fait, en raison de ses avantages économiques, certaines petites entreprises qui ne peuvent se permettre coûteux en circuit testeurs utilisent JTAG.
L'architecture de test JTAG fournit un moyen de tester les interconnexions entre les circuits intégrés sur une planche sans l'aide de sondes de test physiques. On ajoute une cellule de balayage de limite qui comprend un multiplexeur et se verrouille à chaque broche du dispositif.
1.2. Principe
La technique de Boundary-Scan (littéralement, scrutation des frontières) est conçue pour faciliter et automatiser le test des cartes électroniques numériques. Elle consiste à donner un accès auxiliaire aux broches d'entrée-sortie des composants numériques fortement intégrés. Initialement, le Boundary Scan était uniquement destiné au test des court-circuits et de la continuité entre puces compatibles. Connaissant le schéma électrique de la carte électronique, on applique un ensemble de signaux logiques (appelé vecteur de test) sur les broches d'entrée de certains composants (depuis la chaîne Boundary Scan interne), et on relève les niveaux logiques sur les broches de sortie des composants qui y sont connectés, pour s'assurer qu'ils correspondent aux valeurs attendues. On peut ainsi s'assurer de la bonne qualité des pistes du circuit imprimé et des soudures. Pour cela, chaque broche d'entrée-sortie n'est pas connectée directement à l'intérieur du composant numérique, mais à travers une « cellule JTAG » permettant de la piloter indépendamment de sa fonction initiale. Il est ainsi possible de la configurer en entrée (haute-impédance) ou en sortie (niveau logique haut ou bas). Cependant chaque type de broche a un nombre de cellules qui lui est associé. Les broches d'entrée et de sortie n'ont besoin que d'une cellule chacune. Les broches tristates ayant besoin de deux entrées pour fonctionner (entrée de signal et activation de l'état haute impédance), il faudra donc deux cellules pour pouvoir les tester. Les broches I/O (pour Input/Output, ou encore Entrée/Sortie) sont quant à elles composées d'une sortie ainsi que d'une entrée qui peut être placée en haute impédance. Étant donné ce qui a été dit précédemment, pour mettre à l'état haute impédance, il y a besoin de deux cellules. Il faudra donc en tout pas moins de trois cellules pour pouvoir tester une broche I/O. Il est à noter que les cellules ne sont pas utilisées pour tester les broches d'alimentation, d'horloge et de reset. Les cellules sont connectées entre elles par un bus série faisant le tour de la puce (d'où la notion de « frontière » ou Boundary), équivalent à un grand registre à décalage de taille égale ou supérieure au nombrede broches d'entrée-sortie du composant. On appelle ce registre BSR, pour Boundary Scan Register. LeTAP Controller, qui reçoit les signaux JTAG de l'extérieur, permet d'activer et de piloter les cellules selon une séquence normalisée.
Cet article donne un bref aperçu de l'architecture de JTAG et les nouvelles tendances technologiques qui rendent l'utilisation de JTAG essentiel pour réduire considérablement les coûts de développement et de production, en accélérant le développement de tests grâce à l'automatisation et l'amélioration de la qualité du produit en raison de la couverture accrue de défaut.L'article décrit également les diverses utilisations de JTAG et les outils disponibles aujourd'hui pour soutenir la technologie JTAG.
1.2.1. Contrôleurs JTAG Boundary-Scan
Corelis a développé une large gamme de haute performance contrôleurs boundary-scan qui sont compatibles avec les bus tels que USB 2.0, PCI, PCI Express, PXI / cPCI, Ethernet, VME, VXI et La plupart decontrôleurs boundary-scan de CORELIS fonctionnent jusqu'à 80MHz de fréquence TCK. Ce large choix de plates-formes permet une plus grande flexibilité pour répondre aux critères de performance et de prix spécifiques pour une application donnée tout en maintenant la transportabilité logiciel complet sur toutes les plateformes matérielles.Le tableau ci-dessous répertorie les contrôleurs actuels et anciens JTAG offerts par Corelis.
Interface
Modèle
TAP
TCK vitesse
USB 2.0
USB-1149.1 / CFM
1
100 MHz
USB 2.0
USB-1149.1 / 1E
1
100 MHz
USB 2.0
USB-1149.1 / 4E
4
100 MHz
USB 2.0 et Ethernet
NetUSB-1149.1 / E
4
80 MHz
USB 2.0 et Ethernet
NetUSB-1149.1 / SE
8
70 MHz
PCI
PCI-1149.1 / Turbo
4,8 ou 32 (*)
80 MHz
PCI Express
PCIe-1149.1
4,8 ou 32 (*)
80 MHz
USB 2.0
QuadTap CFM
4
50 MHz
PXI / cPCI
IPxC-1149.1 / Turbo
4,8 ou 32 (*)
80 MHz
1.2.2. JTAG Chip architecture L'IEEE 1149.1-norme définit la logique de test dans un circuit intégré qui fournit des applications pour effectuer:
vérification de l'intégrité de la chaîne
tests d'interconnexion entre appareils
Tests de logique de base (BIST)
En-système de programmation
In-Circuit Emulation
Les tests fonctionnels
1.2.3. Chaîne JTAG numérisation avec Chips multiples
1.2.4. JTAG vecteurs de test et JTAG interface TAP
1.2.5. Les signaux d'interface JTAG TAP
Abréaviationn
Signal
Description
TCK
horloge de test
Synchronise les opérations de la machine d'état interne
TMS
Essai État mode
Échantillonné sur le front montant de TCK pour déterminer l'état suivant
TDI
Essai Data Input
Représente les données transférées dans la logique de test ou de la programmation de l'appareil. Il est prélevé sur le front montant de TCK lorsque la machine d'état interne est dans un état correct.
TDO
Essai Data Out
Représente les données déplacées en dehors de la logique de test ou de la programmation de l'appareil et est valable sur le front descendant du TCK lorsque la machine d'état interne est dans un état correct
TRST
Réinitialisation de test
Une broche en option qui, lorsqu'elle est disponible, peut réinitialiser la machine d'état de la TAP contrôleur
2. Domaine d'utilisation
Alors qu'il est évident que le test basé JTAG peut être utilisé dans la phase de production d'un produit, de nouveaux développements et applications de la norme IEEE 1149.1-ont permis l'utilisation de JTAG dans beaucoup d'autres phases du cycle de vie du produit.Plus précisément, la technologie JTAG est maintenant appliqué à la conception du produit, prototype de débogage et de service sur le terrain comme le montre la figure ci-dessous. Cela signifie que le coût des outils de JTAG peut être amorti sur l'ensemble du cycle de vie du produit, et pas seulement de la phase de production.
Pour faciliter ce concept de cycle de vie du produit, JTAG fournisseurs d'outils tels que Corelis offrent une famille intégrée de solutions logicielles et matérielles pour toutes les phases du cycle de vie d'un produit.
Tous ces produits sont compatibles les uns avec les autres, protégeant ainsi l'investissement de l'utilisateur.
2.1. Application JTAG pour le développement du produit
Le lecteur de commercialisation en cours pour la taille réduite de produits, tels que les téléphones portables et les appareils photo numériques, une plus grande intégration fonctionnelle, de plus grandes vitesses d'horloge, et produit du cycle de vie plus court avec beaucoup plus rapidement le marché de temps de mise a créé de nouvelles tendances technologiques. Ces tendances comprennent la complexité accrue de l'appareil, les composants à pas fin, comme la technologie de montage en surface (SMT), des systèmes en boîtier (SIP), modules multi-puces (MCM), les tableaux balle-grille (BGA), l'augmentation de IC brochage compter, et des traces de PCB plus petits. Ces avancées technologiques, à leur tour, créent des problèmes dans le développement PCB:
De nombreux conseils comprennent des composants qui sont assemblés sur les deux côtés de la carte. La plupart des trous de passage et les traces sont enterrés et inaccessible.
Perte de l'accès physique aux composants à pas fins, tels que les SMT et BGA, il est difficile de sonder les broches et la distinction entre les problèmes de fabrication et de conception.
Souvent, un prototype de carte est construit à la hâte par un petit atelier d'assemblage avec contrôle de qualité inférieure par rapport à une maison de production. Un prototype comprend généralement plus de défauts d'assemblage que d'une unité de production.
Lorsque le prototype arrive, un banc d'essai pour la TIC ne sont pas disponibles et, par conséquent, les défauts de fabrication ne peuvent pas être facilement détectés et isolés.
Les produits de petite taille ne possèdent pas de points de test, ce qui rend difficile ou impossible pour sonder noeuds présumés.
Beaucoup de Logic Devices complexes programmables (CPLD) et les dispositifs de mémoire flash (en paquets BGA) ne sont pas à douille et sont soudés directement sur la carte.
Chaque fois qu'un nouveau processeur ou un dispositif de flash est sélectionné, l'ingénieur doit apprendre à partir de zéro comment programmer la mémoire flash.
Quand un design comprend CPLD provenant de différents fournisseurs, l'ingénieur doit utiliser différents programmeurs-circuit à programmer les CPLD.
Technologie JTAG est la seule solution rentable qui peut traiter les problèmes ci-dessus. Au cours des dernières années, le nombre d'appareils qui incluent JTAG a augmenté de façon spectaculaire.Presque chaque nouveau microprocesseur qui est en cours d'introduction comprend un circuit JTAG pour le test et en circuit émulation. La plupart du CPLD et domaine réseau programmable (FPGA), les fabricants, comme Altera, Lattice et Xilinx, pour ne citer une logique de JTAG quelques-uns, ont intégré dans leurs composants, y compris des circuits supplémentaires qui utilise l'interface à quatre fils JTAG pour programmer leurs appareils dans -système.
Comme l'acceptation de JTAG comme la principale technologie pour les tests d'interconnexion et la programmation in-(ISP) a augmenté, les différents outils de test JTAG et FAI ont mûri aussi.L'augmentation du nombre des composants et des outils JTAG JTAG matures, ainsi que d'autres facteurs qui seront décrits plus loin, les ingénieurs fournir les avantages suivants:
Facile à mettre en œuvre (DFT) des règles de conception lucratif testabilité. Une liste de règles de base DFT est fourni plus loin dans cet article.
L'analyse de conception avant PCB pour améliorer la testabilité.
problèmes d'emballage se trouvent avant PCB.
Peu besoin de points de test.
Pas besoin de dispositifs d'essai.
Plus de contrôle sur le processus de test.
Diagnostic rapide (haute résolution) des problèmes d'interconnexion sans écrire de code de test fonctionnel.
Le code du programme dans les périphériques flash.
le placement des données de configuration de conception dans CPLD.
émulation JTAG et débogage au niveau source.
2.1.1. ScanExpress Flash Generator
Flash Programmation génération de fichier Lorsque les dispositifs programmables tels Flash SEEPROM, CPLD, FPGA et sont reliés à des dispositifs boundary-scan sur une carte de circuit imprimé, ScanExpress Flash Generator™peuvent être utilisés pour créer la programmation de fichiers pour y accéder via l'interface JTAG. Le logiciel combine un conseil netlist, les informations d'analyse de la chaîne, et les fichiers BSDL pour générer automatiquement les vecteurs d'analyse nécessaires à la réalisation de lire, écrire, effacer, et vérifier les opérations. ScanExpress Flash Generatordispose d'une large gamme d'appareils et les fabricants de flash prises en charge, y compris Intel, Spansion, Microchip, Samsung, Micron, ST, TI, et beaucoup plus.
Corelis Software / Hardware Organigramme
ScanExpress TPG
ScanExpress JET
ScanExpress DFT Analyzer
ScanExpress Merge
ScanExpress Runner
ScanExpress Runner Gang
ScanExpress Viewer
ScanExpress Debugger
ScanExpress Programmer
3. Norme IEEE 1149.
L’Institute of Electrical and Electronics Engineers ou IEEE, en français l'« Institut des ingénieurs électriciens et électroniciens », est une association professionnelle. L’IEEE compte plus de 400 000 membres et possède différentes branches dans plusieurs parties du monde. L’IEEE est constituée d’ingénieurs électriciens, d’informaticiens, de professionnels du domaine des télécommunications, etc. L’organisation a pour but de promouvoir la connaissance dans le domaine de l’ingénierie électrique (électricité et électronique).
3.1. Un peu d'histoire
L'Institute of Electrical and Electronics Engineers est né de la fusion, le 1er janvier 1963, de l’American Institute of Electrical Engineers (AIEE, fondé en 1884) et de l’Institute of Radio Engineers (IRE, fondé en 1912). L'année 1984 a été marquée dans les diverses publications de l'organisme comme celle du centenaire de l'organisation. En 2010, l'association comptait 407 541 membres dont à peu près 102 000 étudiants dans plus de 160 pays. Elle fédère 38 sociétés et sept conseils techniques représentant la grande variété des champs techniques. Au début de 2008, plus de 1 300 normes et projets étaient à l’étude. Sa documentation électronique, l'IEEE/IET Electronic Library (IEL), recense plus de 2 millions de documents et plus de 20 000 documents sont ajoutés chaque mois
3.2. Principe
L’IEEE joue un rôle très important dans l'établissement de normes. Ceci est fait par la IEEE Standards Association. Elle assure la publication de ses propres normes et des autres textes rédigés par des membres de son organisation.
Quelques comités:
IEEE switchgear : normes C37 pour l'appareillage électrique
IEEE 488 : interface de communication entre différents instruments de mesure
IEEE 754 : représentation décimale en virgule flottante
IEEE 802 : LAN avec adressage et haut débit
802.1 : Gestion des réseaux locaux
802.1X : Sécurisation d'accès à un réseau local
802.2 : Distinction entre couche liaison et couche média dans une optique OSI
802.3 : Couche média CSMA/CD (Ethernet)
802.4 : Couche média Token bus (utilisée en informatique industrielle)
802.5 : Couche média Token-ring (IBM)
802.6 : Réseaux à grande distance (Metropolitan Area Networks ou MANs)
802.11 : Réseau local sans fil (Wi-Fi)
802.12 : 100 VG Anylan (ratifiée en 1995, similaire au Fast Ethernet, mais peu utilisé pour des raisons économiques et techniques)
802.15 : Bluetooth, ZigBee
802.16 : WiMAX
802.22 : Réseau régional sans fil, sorte de (Wi-Fi) utilisant les bandes fréquences VHF et UHF pour atteindre une portée de plusieurs dizaines de km
IEEE 1003 : POSIX (Portable operating system interface)
IEEE 1149.1 : « boundary scan » : test de circuits intégrés numériques
IEEE 1275 : Open Firmware
IEEE 1284 : port parallèle
IEEE 1394 : bus série (« FireWire »)
IEEE 1474 : CBTC
IEEE P1901 : Courants porteurs en ligne (CPL)
IEEE 2048 : Techniques de revues de logiciel
4. Modèles BSDL
Le Boundary scan description language (BSDL) est un langage de description utilisé pour tester des puces électroniques grâce à un port JTAG. The Boundary-Scan Description Language permet aux utilisateurs de fournir une description de la manière dont boundary-scan est mis en œuvre dans un dispositif particulier. Comme chaque concepteur de puce a tendance à appliquer la norme boundary-scan d'une manière légèrement différente, il est nécessaire d'exprimer les tests d'une manière compréhensible, précise et utilisable.BSDL est écrit dans un sous-ensemble de VHDL. VHDL est couramment utilisé comme un langage de conception FPGA pour entrée et ASIC dans l'automatisation de la conception électronique de circuits numériques, et en tant que tel, il est adapté pour travailler avec boundary-scan depuis la conception de nombreuses puces est effectuée en utilisant cette langue. Cependant BSDL est un "sous-ensemble et à la pratique standard" de VHDL, soit le champ d'application de VHDL est de ce fait limité à une application de balayage de limite.Lors de la conception de la BSDL il y avait deux principaux critères de la langue:
Il devrait être facile à utiliser
Il devrait être analysable par un ordinateur de manière simple et sans ambiguïté
BDSL permet des descriptions précises et utiles des caractéristiques d'un dispositif qui utilise boundary-scan. Le fichier BSDL est utilisé par les outils boundary-scan à utiliser les fonctionnalités de l'appareil pour permettre la génération de test de programme, diagnostic de panne, ainsi que l'utilisation dans toute analyse de testabilité. BSDL est pas un langage qui peut être utilisé pour la description matérielle; plutôt, il est utilisé pour définir les caractéristiques de transport de données de l'appareil, à savoir comment il capture, changements, mises à jour et les données numérisées.Elle est ensuite utilisée dans la définition de la capacité de test. Le fichier BSDL comprend les données suivantes:
Déclaration entité: La Déclaration de l'entité est une construction VHDL qui est utilisé pour identifier le nom de l'appareil qui est décrit dans le fichier BSDL.
Paramètre générique: Le paramètre générique est la section qui spécifie le paquet est décrit.
Port logique Description: Cette description répertorie toutes les connexions sur le dispositif. Il définit ses attributs de base, à savoir, si la connexion est une entrée (dans peu;), (bit sur;) sortie, bi-directionnel (inout peu;) ou si elle est indisponible pour boundary-scan (bit de liaison;).
Package Pin Cartographie: Le Pin cartographie progiciel est utilisé pour déterminer les connexions internes au sein d'un circuit intégré. Il détaille comment les patins sur la matrice de l'appareil sont câblés sur les broches externes.
Utilisez états: Cette déclaration est utilisée pour appeler les packages VHDL qui contiennent les données qui sont référencés dans le fichier BSDL.
Identification Port Scan: Le Port d'identification de numérisation identifie les broches particulières qui sont utilisées pour la mise en œuvre / JTAG boundary-scan. Ceux-ci comprennent: TDI, TDO, TMS, TCK et TRST (le cas échéant).
Test de port d'accès (TAP) Description: Cette entité fournit des informations supplémentaires sur le boundary-scan JTAG ou logique de l'appareil. Les données comprennent la longueur du registre d'instruction, opcodes d'instruction, IDCODE de l'appareil, etc.
Registre de Périphérie Description:Cette description fournit la structure des cellules boundary-scan sur l'appareil. Chaque broche sur un dispositif peut avoir jusqu'à trois cellules de boundary-scan, chaque cellule étant constituée d'un registre et d'un verrou.
4.1. Utilisation de BSDL
Quand une carte est conçue, appareils boundary-scan-conformes sont organisés en «chaînes».Chaînes de numérisation sont à la base pour les tests de niveau du conseil d'administration et au niveau du système qui peut détecter et diagnostiquer les défauts structurels au niveau des broches comme ouvre et short. Les outils automatisés sont utilisés pour générer des programmes ou des procédures d'essai pour les planches. Les entrées les plus importantes à ce processus sont les fichiers BSDL pour les appareils boundary-scan-permis, et la liste d'interconnexions qui décrit les interconnexions entre les dispositifs de la carte. Le programme de test généré, lorsqu'il est appliqué à une carte cible, rapporte les échecs de tests structurels et peut être utilisé pour aider à réparer la carte.
Certains outils sont capables d'utiliser boundary-scan pour créer des modèles de test pour des groupes de composants qui comprennent des dispositifs non boundary-scan-conformes, et d'autres outils peuvent générer des modèles de test d'un processeur embarqué peut fonctionner pour permettre des tests fonctionnels à vitesse . Ces procédures d'essai sont appliquées autonome ou en conjonction avec d'autres techniques de test, comme en circuit d'essais (TIC), avec un objectif global de production de couverture de test optimale au moindre coût et le plus court temps de développement de test.
5. Intégration du JTAG dans l’ATmega 16
Le microcontrôleur ATMega16 possède une interface JTAG intégrée (comme tous ceux faisant partie de la famille ‘MEGA’). Il permet de modifier le contenu des mémoires EEPROM et FLASH du microcontrôleur.
L'interface JTAG est accessible à travers 4 pins de l'AVR dans la technologie JTAG, ces pins constituent le Test Access Port (TAP : Test de port d’accès). ces pins sont:
TMS : Test Mode Select. cette pin est utilisée pour naviguer à travers le TAP, contrôlleur d'état de la machine.
TCK : Test Clock. l'opération JTAG est synchrone au TCK
TDI : Test Data In. Les données d'entrée série doivent être déplacées dans le registre d'instruction ou le registre de donnée.
TDO : Test Data Out. Les données de sortie série du registre d'instruction ou du registre de donnée
6. Utilisation de l’AVR Dragon avec la carte EasyAVR
6.1 Présentation de l'AVR Dragon
AVR Dragon est un outil de développement à bas prix dédié aux microcontrôleurs AVR 8 bits et 32
bits d'ATMEL. Il se présente sous la forme d'une petite carte électronique reliée au PC par USB.
AVR Dragon permet principalement 2 choses :
Programmer les mémoires FLASH et EEPROM des microcontrôleurs AVR et AVR32
Déboguer un programme directement dans la mémoire du microcontrôleur AVR et AVR32
en permettant par exemple, d'exécuter en pas à pas, de poser des points d'arrêts,
d'observer l'évolution des variables du programme ou du contenu des mémoires (SRAM,
EEPROM) et de lire ou modifier le contenu des registres.
En plus de ces deux fonctions essentielles, AVR Dragon dispose d'une zone de prototypage pouvant accueillir des microcontrôleurs en boitier DIP.
AVR Dragon prévu à l'origine pour s'intégrer au logiciel gratuit AVR Studio d'ATMEL est aussi compatible avec d'autres logiciels comme CodeVision AVR ou AVRDUDE.
Pour le débogage, il est nécessaire que le microcontrôleur cible dispose d'une interface JTAG, debugWire ou PDI.
6.2. Connecteurs vers le microcontrôleur cible
AVR Dragon peut principalement programmer les microcontrôleurs cibles, In-Situ, par l'intermédiaired'une liaison ISP ou JTAG. Le débogage est réalisé par l'intermédiaire d'une liaison debugWire ou JTAG.
Il peut aussi programmer des microcontrôleurs à l'aide d'interfaces « haute tension » (PP ou HVSP).
Il est nécessaire dans ce cas, d'extraire le microcontrôleur de son support de la carte cible. Bien que très peu utilisés, les modes de programmation « haute tension » peuvent permettre de revalider un fusebit SPIEN et/ou JTAGEN invalidé accidentellement. Cette possibilité ne sera pas décrite dans ce document.AVR Dragon dispose d'un connecteur HE10 à 6 broches pour la connexion ISP, debugWire et PDI et d'un connecteur HE10 à 10 broches pour la connexion JTAG. L'utilisation de PDI ne sera pas décrite dans ce document. Il faut noter qu'ATMEL a, de façon autoritaire, imposé le connecteur ISP HE10 à 6 broches sur ses nouveaux outils de développement (comme AVR Dragon ou AVRISP mkII), sans se soucier de la compatibilité des cartes cibles existantes ! A l'utilisateur de s'adapter... L'explication officielle est de limiter les confusions entre un connecteur JTAG et un connecteur ISP, ce qui se comprends...
6.2.1. Connecteur JTAG
6.2.2.Connecteur ISP/debugWire
En conclusion,la connexion entre l'AVR DRAGON et la carte easyAVR s'éffectue via le connecteur JTAG ou le connecteur ISP de la carte.
1.Généralité
Table of Contents
1.1.Définition
Le JTAG pour Joint Test Action Group est le nom de la norme IEEE 1149.1 intitulé « Standard Test Access Port and Boundary-Scan Architecture ». Le JTAG a été normalisé en 1990.Le terme JTAG, désignant le groupe de travail qui a conçu la norme, est abusivement (mais très largement) utilisé au lieu du terme générique Boundary Scan, ou du sigle TAP (Test Access Port, port d'accès de test).
1.1.1.Une brève histoire de JTAG
Dans les années 1980, le Groupe d'action mixte test (JTAG) a élaboré un cahier des charges pour le test JTAG qui a été normalisé en 1990, l'IEEE Std. 1149.1-1990. En 1993, une nouvelle révision à la norme IEEE Std. 1149.1 norme a été introduite (1149.1a intitulé) et il contient de nombreuses précisions, corrections et améliorations. En 1994,un supplément contenant une description de la Boundary-Scan Description Language (BSDL) a été ajouté à la norme. Depuis ce temps, cette norme a été adoptée par les grandes entreprises d'électronique dans le monde entier. Les demandes sont trouvés en grande quantité, les produits haut de gamme grand public, des produits de télécommunication, les systèmes de défense, des ordinateurs, des périphériques, et de l'avionique. En fait, en raison de ses avantages économiques, certaines petites entreprises qui ne peuvent se permettre coûteux en circuit testeurs utilisent JTAG.
L'architecture de test JTAG fournit un moyen de tester les interconnexions entre les circuits intégrés sur une planche sans l'aide de sondes de test physiques.
On ajoute une cellule de balayage de limite qui comprend un multiplexeur et se verrouille à chaque broche du dispositif.
1.2. Principe
La technique de Boundary-Scan (littéralement, scrutation des frontières) est conçue pour faciliter et automatiser le test des cartes électroniques numériques. Elle consiste à donner un accès auxiliaire aux broches d'entrée-sortie des composants numériques fortement intégrés.Initialement, le Boundary Scan était uniquement destiné au test des court-circuits et de la continuité entre puces compatibles. Connaissant le schéma électrique de la carte électronique, on applique un ensemble de signaux logiques (appelé vecteur de test) sur les broches d'entrée de certains composants (depuis la chaîne Boundary Scan interne), et on relève les niveaux logiques sur les broches de sortie des composants qui y sont connectés, pour s'assurer qu'ils correspondent aux valeurs attendues. On peut ainsi s'assurer de la bonne qualité des pistes du circuit imprimé et des soudures. Pour cela, chaque broche d'entrée-sortie n'est pas connectée directement à l'intérieur du composant numérique, mais à travers une « cellule JTAG » permettant de la piloter indépendamment de sa fonction initiale. Il est ainsi possible de la configurer en entrée (haute-impédance) ou en sortie (niveau logique haut ou bas). Cependant chaque type de broche a un nombre de cellules qui lui est associé. Les broches d'entrée et de sortie n'ont besoin que d'une cellule chacune. Les broches tristates ayant besoin de deux entrées pour fonctionner (entrée de signal et activation de l'état haute impédance), il faudra donc deux cellules pour pouvoir les tester. Les broches I/O (pour Input/Output, ou encore Entrée/Sortie) sont quant à elles composées d'une sortie ainsi que d'une entrée qui peut être placée en haute impédance. Étant donné ce qui a été dit précédemment, pour mettre à l'état haute impédance, il y a besoin de deux cellules. Il faudra donc en tout pas moins de trois cellules pour pouvoir tester une broche I/O. Il est à noter que les cellules ne sont pas utilisées pour tester les broches d'alimentation, d'horloge et de reset. Les cellules sont connectées entre elles par un bus série faisant le tour de la puce (d'où la notion de « frontière » ou Boundary), équivalent à un grand registre à décalage de taille égale ou supérieure au nombre de broches d'entrée-sortie du composant. On appelle ce registre BSR, pour Boundary Scan Register. Le TAP Controller, qui reçoit les signaux JTAG de l'extérieur, permet d'activer et de piloter les cellules selon une séquence normalisée.
Cet article donne un bref aperçu de l'architecture de JTAG et les nouvelles tendances technologiques qui rendent l'utilisation de JTAG essentiel pour réduire considérablement les coûts de développement et de production, en accélérant le développement de tests grâce à l'automatisation et l'amélioration de la qualité du produit en raison de la couverture accrue de défaut.L'article décrit également les diverses utilisations de JTAG et les outils disponibles aujourd'hui pour soutenir la technologie JTAG.
1.2.1. Contrôleurs JTAG Boundary-Scan
Corelis a développé une large gamme de haute performance contrôleurs boundary-scan qui sont compatibles avec les bus tels que USB 2.0, PCI, PCI Express, PXI / cPCI, Ethernet, VME, VXI et La plupart decontrôleurs boundary-scan de CORELIS fonctionnent jusqu'à 80MHz de fréquence TCK. Ce large choix de plates-formes permet une plus grande flexibilité pour répondre aux critères de performance et de prix spécifiques pour une application donnée tout en maintenant la transportabilité logiciel complet sur toutes les plateformes matérielles.Le tableau ci-dessous répertorie les contrôleurs actuels et anciens JTAG offerts par Corelis.
vitesse
1.2.2. JTAG Chip architecture
L'IEEE 1149.1-norme définit la logique de test dans un circuit intégré qui fournit des applications pour effectuer:
1.2.3. Chaîne JTAG numérisation avec Chips multiples
1.2.4. JTAG vecteurs de test et JTAG interface TAP
1.2.5. Les signaux d'interface JTAG TAP
2. Domaine d'utilisation
Alors qu'il est évident que le test basé JTAG peut être utilisé dans la phase de production d'un produit, de nouveaux développements et applications de la norme IEEE 1149.1-ont permis l'utilisation de JTAG dans beaucoup d'autres phases du cycle de vie du produit.Plus précisément, la technologie JTAG est maintenant appliqué à la conception du produit, prototype de débogage et de service sur le terrain comme le montre la figure ci-dessous. Cela signifie que le coût des outils de JTAG peut être amorti sur l'ensemble du cycle de vie du produit, et pas seulement de la phase de production.
Pour faciliter ce concept de cycle de vie du produit, JTAG fournisseurs d'outils tels que Corelis offrent une famille intégrée de solutions logicielles et matérielles pour toutes les phases du cycle de vie d'un produit.
Tous ces produits sont compatibles les uns avec les autres, protégeant ainsi l'investissement de l'utilisateur.
2.1. Application JTAG pour le développement du produit
Le lecteur de commercialisation en cours pour la taille réduite de produits, tels que les téléphones portables et les appareils photo numériques, une plus grande intégration fonctionnelle, de plus grandes vitesses d'horloge, et produit du cycle de vie plus court avec beaucoup plus rapidement le marché de temps de mise a créé de nouvelles tendances technologiques. Ces tendances comprennent la complexité accrue de l'appareil, les composants à pas fin, comme la technologie de montage en surface (SMT), des systèmes en boîtier (SIP), modules multi-puces (MCM), les tableaux balle-grille (BGA), l'augmentation de IC brochage compter, et des traces de PCB plus petits. Ces avancées technologiques, à leur tour, créent des problèmes dans le développement PCB:
- De nombreux conseils comprennent des composants qui sont assemblés sur les deux côtés de la carte. La plupart des trous de passage et les traces sont enterrés et inaccessible.
- Perte de l'accès physique aux composants à pas fins, tels que les SMT et BGA, il est difficile de sonder les broches et la distinction entre les problèmes de fabrication et de conception.
- Souvent, un prototype de carte est construit à la hâte par un petit atelier d'assemblage avec contrôle de qualité inférieure par rapport à une maison de production. Un prototype comprend généralement plus de défauts d'assemblage que d'une unité de production.
- Lorsque le prototype arrive, un banc d'essai pour la TIC ne sont pas disponibles et, par conséquent, les défauts de fabrication ne peuvent pas être facilement détectés et isolés.
- Les produits de petite taille ne possèdent pas de points de test, ce qui rend difficile ou impossible pour sonder noeuds présumés.
- Beaucoup de Logic Devices complexes programmables (CPLD) et les dispositifs de mémoire flash (en paquets BGA) ne sont pas à douille et sont soudés directement sur la carte.
- Chaque fois qu'un nouveau processeur ou un dispositif de flash est sélectionné, l'ingénieur doit apprendre à partir de zéro comment programmer la mémoire flash.
- Quand un design comprend CPLD provenant de différents fournisseurs, l'ingénieur doit utiliser différents programmeurs-circuit à programmer les CPLD.
Technologie JTAG est la seule solution rentable qui peut traiter les problèmes ci-dessus. Au cours des dernières années, le nombre d'appareils qui incluent JTAG a augmenté de façon spectaculaire.Presque chaque nouveau microprocesseur qui est en cours d'introduction comprend un circuit JTAG pour le test et en circuit émulation. La plupart du CPLD et domaine réseau programmable (FPGA), les fabricants, comme Altera, Lattice et Xilinx, pour ne citer une logique de JTAG quelques-uns, ont intégré dans leurs composants, y compris des circuits supplémentaires qui utilise l'interface à quatre fils JTAG pour programmer leurs appareils dans -système.Comme l'acceptation de JTAG comme la principale technologie pour les tests d'interconnexion et la programmation in-(ISP) a augmenté, les différents outils de test JTAG et FAI ont mûri aussi.L'augmentation du nombre des composants et des outils JTAG JTAG matures, ainsi que d'autres facteurs qui seront décrits plus loin, les ingénieurs fournir les avantages suivants:
2.1.1. ScanExpress Flash Generator
Flash Programmation génération de fichier
Lorsque les dispositifs programmables tels Flash SEEPROM, CPLD, FPGA et sont reliés à des dispositifs boundary-scan sur une carte de circuit imprimé, ScanExpress Flash Generator™peuvent être utilisés pour créer la programmation de fichiers pour y accéder via l'interface JTAG. Le logiciel combine un conseil netlist, les informations d'analyse de la chaîne, et les fichiers BSDL pour générer automatiquement les vecteurs d'analyse nécessaires à la réalisation de lire, écrire, effacer, et vérifier les opérations. ScanExpress Flash Generatordispose d'une large gamme d'appareils et les fabricants de flash prises en charge, y compris Intel, Spansion, Microchip, Samsung, Micron, ST, TI, et beaucoup plus.
Corelis Software / Hardware Organigramme
3. Norme IEEE 1149.
L’Institute of Electrical and Electronics Engineers ou IEEE, en français l'« Institut des ingénieurs électriciens et électroniciens », est une association professionnelle. L’IEEE compte plus de 400 000 membres et possède différentes branches dans plusieurs parties du monde. L’IEEE est constituée d’ingénieurs électriciens, d’informaticiens, de professionnels du domaine des télécommunications, etc. L’organisation a pour but de promouvoir la connaissance dans le domaine de l’ingénierie électrique (électricité et électronique).
3.1. Un peu d'histoire
L'Institute of Electrical and Electronics Engineers est né de la fusion, le 1er janvier 1963, de l’American Institute of Electrical Engineers (AIEE, fondé en 1884) et de l’Institute of Radio Engineers (IRE, fondé en 1912).L'année 1984 a été marquée dans les diverses publications de l'organisme comme celle du centenaire de l'organisation.
En 2010, l'association comptait 407 541 membres dont à peu près 102 000 étudiants dans plus de 160 pays. Elle fédère 38 sociétés et sept conseils techniques représentant la grande variété des champs techniques.
Au début de 2008, plus de 1 300 normes et projets étaient à l’étude.
Sa documentation électronique, l'IEEE/IET Electronic Library (IEL), recense plus de 2 millions de documents et plus de 20 000 documents sont ajoutés chaque mois
3.2. Principe
L’IEEE joue un rôle très important dans l'établissement de normes. Ceci est fait par la IEEE Standards Association. Elle assure la publication de ses propres normes et des autres textes rédigés par des membres de son organisation.
Quelques comités:
4. Modèles BSDL
Le Boundary scan description language (BSDL) est un langage de description utilisé pour tester des puces électroniques grâce à un port JTAG.
The Boundary-Scan Description Language permet aux utilisateurs de fournir une description de la manière dont boundary-scan est mis en œuvre dans un dispositif particulier. Comme chaque concepteur de puce a tendance à appliquer la norme boundary-scan d'une manière légèrement différente, il est nécessaire d'exprimer les tests d'une manière compréhensible, précise et utilisable.BSDL est écrit dans un sous-ensemble de VHDL. VHDL est couramment utilisé comme un langage de conception FPGA pour entrée et ASIC dans l'automatisation de la conception électronique de circuits numériques, et en tant que tel, il est adapté pour travailler avec boundary-scan depuis la conception de nombreuses puces est effectuée en utilisant cette langue. Cependant BSDL est un "sous-ensemble et à la pratique standard" de VHDL, soit le champ d'application de VHDL est de ce fait limité à une application de balayage de limite.Lors de la conception de la BSDL il y avait deux principaux critères de la langue:
- Il devrait être facile à utiliser
- Il devrait être analysable par un ordinateur de manière simple et sans ambiguïté
BDSL permet des descriptions précises et utiles des caractéristiques d'un dispositif qui utilise boundary-scan. Le fichier BSDL est utilisé par les outils boundary-scan à utiliser les fonctionnalités de l'appareil pour permettre la génération de test de programme, diagnostic de panne, ainsi que l'utilisation dans toute analyse de testabilité. BSDL est pas un langage qui peut être utilisé pour la description matérielle; plutôt, il est utilisé pour définir les caractéristiques de transport de données de l'appareil, à savoir comment il capture, changements, mises à jour et les données numérisées.Elle est ensuite utilisée dans la définition de la capacité de test. Le fichier BSDL comprend les données suivantes:4.1. Utilisation de BSDL
Quand une carte est conçue, appareils boundary-scan-conformes sont organisés en «chaînes».Chaînes de numérisation sont à la base pour les tests de niveau du conseil d'administration et au niveau du système qui peut détecter et diagnostiquer les défauts structurels au niveau des broches comme ouvre et short. Les outils automatisés sont utilisés pour générer des programmes ou des procédures d'essai pour les planches. Les entrées les plus importantes à ce processus sont les fichiers BSDL pour les appareils boundary-scan-permis, et la liste d'interconnexions qui décrit les interconnexions entre les dispositifs de la carte. Le programme de test généré, lorsqu'il est appliqué à une carte cible, rapporte les échecs de tests structurels et peut être utilisé pour aider à réparer la carte.
Certains outils sont capables d'utiliser boundary-scan pour créer des modèles de test pour des groupes de composants qui comprennent des dispositifs non boundary-scan-conformes, et d'autres outils peuvent générer des modèles de test d'un processeur embarqué peut fonctionner pour permettre des tests fonctionnels à vitesse . Ces procédures d'essai sont appliquées autonome ou en conjonction avec d'autres techniques de test, comme en circuit d'essais (TIC), avec un objectif global de production de couverture de test optimale au moindre coût et le plus court temps de développement de test.
5. Intégration du JTAG dans l’ATmega 16
Le microcontrôleur ATMega16 possède une interface JTAG intégrée (comme tous ceux faisant partie de la famille ‘MEGA’). Il permet de modifier le contenu des mémoires EEPROM et FLASH du microcontrôleur.
L'interface JTAG est accessible à travers 4 pins de l'AVR dans la technologie JTAG, ces pins constituent le Test Access Port (TAP : Test de port d’accès). ces pins sont:
6. Utilisation de l’AVR Dragon avec la carte EasyAVR
6.1 Présentation de l'AVR Dragon
AVR Dragon est un outil de développement à bas prix dédié aux microcontrôleurs AVR 8 bits et 32
bits d'ATMEL. Il se présente sous la forme d'une petite carte électronique reliée au PC par USB.
AVR Dragon permet principalement 2 choses :
- Programmer les mémoires FLASH et EEPROM des microcontrôleurs AVR et AVR32
- Déboguer un programme directement dans la mémoire du microcontrôleur AVR et AVR32
en permettant par exemple, d'exécuter en pas à pas, de poser des points d'arrêts,d'observer l'évolution des variables du programme ou du contenu des mémoires (SRAM,
EEPROM) et de lire ou modifier le contenu des registres.
En plus de ces deux fonctions essentielles, AVR Dragon dispose d'une zone de prototypage pouvant accueillir des microcontrôleurs en boitier DIP.
AVR Dragon prévu à l'origine pour s'intégrer au logiciel gratuit AVR Studio d'ATMEL est aussi compatible avec d'autres logiciels comme CodeVision AVR ou AVRDUDE.
Pour le débogage, il est nécessaire que le microcontrôleur cible dispose d'une interface JTAG, debugWire ou PDI.
6.2. Connecteurs vers le microcontrôleur cible
AVR Dragon peut principalement programmer les microcontrôleurs cibles, In-Situ, par l'intermédiaired'une liaison ISP ou JTAG. Le débogage est réalisé par l'intermédiaire d'une liaison debugWire ou JTAG.
Il peut aussi programmer des microcontrôleurs à l'aide d'interfaces « haute tension » (PP ou HVSP).
Il est nécessaire dans ce cas, d'extraire le microcontrôleur de son support de la carte cible. Bien que très peu utilisés, les modes de programmation « haute tension » peuvent permettre de revalider un fusebit SPIEN et/ou JTAGEN invalidé accidentellement. Cette possibilité ne sera pas décrite dans ce document.AVR Dragon dispose d'un connecteur HE10 à 6 broches pour la connexion ISP, debugWire et PDI et d'un connecteur HE10 à 10 broches pour la connexion JTAG. L'utilisation de PDI ne sera pas décrite dans ce document.
Il faut noter qu'ATMEL a, de façon autoritaire, imposé le connecteur ISP HE10 à 6 broches sur ses nouveaux outils de développement (comme AVR Dragon ou AVRISP mkII), sans se soucier de la compatibilité des cartes cibles existantes ! A l'utilisateur de s'adapter... L'explication officielle est de limiter les confusions entre un connecteur JTAG et un connecteur ISP, ce qui se comprends...
6.2.1. Connecteur JTAG
6.2.2.Connecteur ISP/debugWire
En conclusion,la connexion entre l'AVR DRAGON et la carte easyAVR s'éffectue via le connecteur JTAG ou le connecteur ISP de la carte.
Présentation du jtag:
Référence:
http://www.corelis.com/products-JTAG/index.htm
http://www.corelis.com/education/JTAG_Tutorial.htm
http://www.jtag.com/fr/content/propos-de-jtag-technologies
http://www.corelis.com/education/BSDL_Tutorial.htm